library(tidyverse)index
felinos <-
read_delim(
file = "felinos.csv",
col_select = c(
"species",
"stateProvince",
"locality",
"eventDate",
"decimalLongitude",
"decimalLatitude",
)
)
felinos <-
felinos |>
rename(
especie = species,
provincia = stateProvince,
localidad = locality,
fecha = eventDate,
long= decimalLongitude,
lat= decimalLatitude
)
felinos <-
felinos |>
mutate(fecha = as.Date(fecha, format = "%d/%m/%Y"))library(DT)
felinos |>
select(especie, provincia, localidad, fecha)|>
datatable(options = list(
pageLength = 5,
language = list(url = '//cdn.datatables.net/plug-ins/1.10.11/i18n/Spanish.json')
))felinos <-
felinos |>
mutate(year = as.numeric(format(fecha,'%Y'))) |>
mutate(month = as.numeric(format(fecha,'%m'))) |>
arrange((month))|>
mutate(day = as.numeric(format(fecha,'%d')))library(plotly)
grafico_barras_ggplot2 <-
felinos |>
ggplot(aes(x = month, fill = especie)) +
scale_x_continuous(breaks = seq(1,12,1))+
scale_x_continuous(breaks = seq(1,12,1), labels = c("1" = "Enero", "2" = "Febrero", "3" = "Marzo", "4" = "Abril",
"5" = "Mayo", "6" = "Junio", "7" = "Julio", "8" = "Agosto",
"9" = "Septiembre", "10" = "Octubre", "11" = "Noviembre", "12" = "Diciembre"))+
geom_bar() +
ggtitle("Cantidad de Registros por Especie en Cada mes") +
xlab("meses") +
ylab("Cantidad") +
labs(fill = "Especie") +
theme_minimal()
# Gráfico de barras plotly
ggplotly(grafico_barras_ggplot2) |>
config(locale = 'es')library(sf)
ASP <-
st_read(
"Areassilvestresprotegidas.shp",
quiet = TRUE # para evitar el despliegue de mensajes
)
st_crs(ASP)Coordinate Reference System:
User input: CR05 / CRTM05
wkt:
PROJCRS["CR05 / CRTM05",
BASEGEOGCRS["CR05",
DATUM["Costa Rica 2005",
ELLIPSOID["WGS 84",6378137,298.257223563,
LENGTHUNIT["metre",1]]],
PRIMEM["Greenwich",0,
ANGLEUNIT["degree",0.0174532925199433]],
ID["EPSG",5365]],
CONVERSION["Costa Rica TM 2005",
METHOD["Transverse Mercator",
ID["EPSG",9807]],
PARAMETER["Latitude of natural origin",0,
ANGLEUNIT["degree",0.0174532925199433],
ID["EPSG",8801]],
PARAMETER["Longitude of natural origin",-84,
ANGLEUNIT["degree",0.0174532925199433],
ID["EPSG",8802]],
PARAMETER["Scale factor at natural origin",0.9999,
SCALEUNIT["unity",1],
ID["EPSG",8805]],
PARAMETER["False easting",500000,
LENGTHUNIT["metre",1],
ID["EPSG",8806]],
PARAMETER["False northing",0,
LENGTHUNIT["metre",1],
ID["EPSG",8807]]],
CS[Cartesian,2],
AXIS["northing (N)",north,
ORDER[1],
LENGTHUNIT["metre",1]],
AXIS["easting (E)",east,
ORDER[2],
LENGTHUNIT["metre",1]],
USAGE[
SCOPE["Cadastre, engineering survey, topographic mapping (large and medium scale)."],
AREA["Costa Rica - onshore and offshore east of 86°30'W."],
BBOX[2.21,-86.5,11.77,-81.43]],
ID["EPSG",5367]]
# Transformación del CRS del objeto provincias a WGS84 (EPSG = 4326)
ASP <-
ASP |>
st_transform(4326)library(leafem)
library(leaflet)
library(leaflet.extras)
library(leaflet.providers)
library(terra)
library(raster)
library(rgdal)
altitud <- rast("altitud.tif")
felinos3 <-
st_as_sf(felinos, coords = c("long", "lat"))
st_crs(felinos3) <- 4326
leaflet() |>
setView(# centro y nivel inicial de acercamiento
lng = -84.19452,
lat = 9.572735,
zoom = 7) |>
addTiles(group = "OpenStreetMap") |>
addProviderTiles(providers$Esri.NatGeoWorldMap)|>
addRasterImage(raster(altitud))|>
addPolygons(
# capa de provincias (polígonos)
data = ASP,
color = "black",
fillColor = "transparent",
stroke = TRUE,
weight = 1.0
) |>
addCircleMarkers(
# capa de registros de presencia (puntos)
data = felinos3,
stroke = F,
radius = 4,
fillColor = 'blue',
fillOpacity = 1,
group = "Felinos",
popup = paste(
paste0("<strong>Especie: </strong>", felinos$especie),
paste0("<strong>Localidad: </strong>", felinos$localidad),
paste0("<strong>Fecha: </strong>", felinos$fecha)
)
) |>
addLayersControl(
baseGroups = c("OpenStreetMap", "Esri.NatGeoWorldMap"),
overlayGroups = c("Felinos", "altitud", "ASP")) |> # control de capas
addResetMapButton() |> # botón de reinicio
addSearchOSM() |> # búsqueda en OSM
addMouseCoordinates() |> # coordenadas del puntero del ratón
addScaleBar(position = "bottomleft", options = scaleBarOptions(imperial = FALSE)) |> # barra de escala
addMiniMap(position = "bottomleft") # mapa de ubicación